Low Density Parity Check (LDPC) codes have recently attracted considerable attention owing to their capacity-approaching performance and low complexity iterative decoding. LDPC codes can be applied to a wide range of applications such as data encoding in wireless communications, satellite communications and storage. LDPC codes have also been adopted in standards such as DVB-S2 and 802.16e.
Currently, LDPC codes are considered for the high throughput Wireless Local Area Networks (WLAN) as an optional code for encoding to improve system throughput. However, several issues must be addressed in order to match the LDPC code with the unique WLAN system characteristics. First is the code size. Since LDPC code works better with longer code size, the code size must be selected to be as large as possible to insure performance. However, since WLAN systems are random access based systems, the code size is limited by the SIFS (Short Inter Frame Space) decoding budget. Therefore, the largest code size is limited to around 2K bits. Second, since high-throughput WLAN uses aggregation to improve MAC efficiency, the transmitted PPDU is large, requiring several LDPC codewords.
As such, there has been a need for a method of concatenating the LDPC codeword within a PPDU. Since transported data packets can be any size from typically about 40 bytes up to 12000 bytes and larger, the system must be able to encode variable length packets in a consistent manner. This consistency is required to ensure that the receiver always knows how to reconstruct the information field from the encoded transmitted data.
A conventional WLAN transmitter includes a FEC (forward error correction) unit, a parser, frequency interleavers, QAM modulators and OFDM (orthogonal frequency division multiplexing) modulators. The FEC unit includes convolutional code encoder and the corresponding puncture, or LDPC encoders. Conventionally, the LDPC concatenation rule utilizes shortening for the last codeword. Each packet is encoded as an entity, wherein the data boundary of a packet is respected by the encoder. Headers are encoded at R=½ and BPSK modulation. The length of the packet that is to be encoded is all that is needed to encode or decode the packet using the following rules:                Rule 1: If Length<=Ni bits, where Ni is the number of information bit in a LDPC codeword, then pad extra zeros to the information bit to Ni, encode the packet using just one LDPC codeword, shorten the codeword by removing the padded zeros from the systematic bits in the LDPC codeword.        Rule 2: If Length>Ni bits, then compute Nr=modulo(Length, Ni) (in bits). Encode the first Length−Nr bits using full-length, unshortened codewords, and encode the remaining Ni bits using Rule 1.        Rule 3: Additional zeros are padded if necessary to meet the OFDM boundary.        
However, the above approach has shortcomings. Referring to the performance graphs in FIG. 1 (showing required transmitted OFDM symbols comparison for the above conventional approach together with convolutional codes (CC)), the conventional approach is the simplest with the worst performance in terms of the extra OFDM symbol padding needed (the conventional and CC approaches are shown in the legend of FIG. 1).